Sanitizers(净化器)有助于在程序执行的早期阶段发现错误。
有各种类型的Sanitizers(净化器),可以在编译时通过必要的选项来启用。如果你想启用以下任何一种Sanitizers(净化器),你需要在编译时添加以下标志。
1. ASAN (-fsanitize=address)
2. MSAN (-fsanitize=memory)
3. UBSAN (-fsanitize=undefined)
4. TSAN (-fsanitize=thread)
AFL有各种env变量,如AFL_HARDEN、AFL_USE_ASAN和AFL_USE_MSAN等,可以用来启用对这种净化器的支持,以及进行各种与模糊测试有关的定制。 请看这里: https://github.com/mirrorer/afl/blob/master/docs/env_variables.txt
https://clang.llvm.org/docs/AddressSanitizer.html
https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
https://clang.llvm.org/docs/MemorySanitizer.html
https://clang.llvm.org/docs/ThreadSanitizer.html